A Viterbi decoder is a common type of maximum-likelihood trellis decoder used for the decoding of convolutional code. A Viterbi decoder typically consists of three units: a branch metric unit (BMU) for generating the branch metrics of all possible transitions between all pairs of states in a given coding trellis; an add-compare-select unit (ACSU) for calculating partial path metrics entering each state by adding the branch metric of a particular transition to its corresponding partial path metric and comparing the resultant partial path metrics to select the survivor path of a particular state, and a survivor memory unit (SMU) for storing the selected survivor paths for construction of the decoded sequence.
Typically, for each decoded bit, the number of operations which must be performed by the ACSU is significantly larger than that by the BMU and the SMU, resulting in higher power consumption by the ACSU.
It is an object of this invention to provide a circuit for use in a Viterbi decoder in which power consumption may be reduced.